package com.ks.user.service;

import com.ks.core.base.OperationContext;
import com.ks.core.dto.SearchCriteriaBase;
import com.ks.user.entity.ApBase;
import com.baomidou.mybatisplus.service.IService;

import java.util.Map;

/**
 * <p>
 * 应用基本信息表 服务类
 * </p>
 *
 * @author kingdee123
 * @since 2020-11-30
 */
public interface IApBaseService extends IService<ApBase> {

    Map<String, Object> getApBaseAdminCount(OperationContext context);

    /**
     * 查询应用列表
     *
     * @param
     * @return
     */
    Map<String, Object> getApBaseList(OperationContext context,SearchCriteriaBase searchCriteriaBase);


    Map<String, Object> getSysApBaseList(OperationContext context,SearchCriteriaBase searchCriteriaBase);



    /**
     * 根据Id获取应用详情
     * @param id
     * @return
     */
    ApBase getApBaseInfo(int id);


    /**
     * 添加应用模块
     *
     * @param apBase
     * @return
     */
    int addApBase(OperationContext context,ApBase apBase);

    /**
     * 设置应用上线下线状态
     * @param appId
     * @param appStatus
     * @return
     */
    int setAppOn(int appId,Integer appStatus);

    /**
     * 修改应用信息
     * @param appId
     * @param appCode
     * @param appName
     * @param icon
     * @param iServiceUrlRoot
     * @param iPageUrl
     * @return
     */
    int updateApBase(int appId,String appCode, String appName,String icon,String iServiceUrlRoot,String iPageUrl,String cAppScope,Integer cAppType);


   /**
     * 查询租户授权应用清单
     */
    Map<String, Object> getTenantList(OperationContext context);


    /**
     * 查询系统应用清单
     */
    Map<String, Object> getSysTenantList(OperationContext context,SearchCriteriaBase searchCriteriaBase);

    /**
     * 应用管理模块应用上线下线设置
     */
    int isState(OperationContext context,ApBase apBase);

    /**
     * 应用管理模块应用信息修改接口
     */
    int updateSysApBase(OperationContext context,ApBase apBase);
}
